package com.beans;


import org.springframework.beans.factory.config.ConfigurableBeanFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Component;
// 直接使用Bean 会报错 我们要结合方法一起使用
// 所以我们 创建一个Use类
//通过注解@Bean 会向spring中存储一个User对象(该代码)

// 这里只使用@bean是不能将 UserBean存到spring中的  我们要配合@Component使用
@Component
public class UserBean {
    @Bean
    public User getUser() {
        User user = new User();
        user.setId(1);
        user.setName("zhans");
        return user;
    }
    // 这个user方法 放回的是一个User对象 这个返回的对象 就会被存入Spring中
    // 在APP2 中启动类


    // 可以通过重命名的方式在app2启动类中获取获取 重命名之后 原先的方法就不能用了
    @Bean(name = "userInfo")
    public User getUser1() {
        User user = new User();
        user.setId(2);
        user.setName("lisi");
        return user;
    }



    @Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE)
    @Bean(name = "user1")
    public User User1() {
        User user = new User();
        user.setId(3);
        user.setName("java");
        return user;
    }
    @Bean(name = "user2")
    public User User2() {
        User user = new User();
        user.setId(4);
        user.setName("python");
        return user;
    }
}
